type IsTuple<T> = [T] extends [never]
  ? false
  : T extends [infer F, ...infer R]
  ? true
  : T extends []
  ? true
  : T extends readonly [any]
  ? true
  : false;
